//	package com.auto.learning.service;
//	
//	import java.io.File;
//	import java.io.InputStream;
//	import java.util.ArrayList;
//	
//	import android.annotation.SuppressLint;
//	import android.app.Service;
//	import android.content.BroadcastReceiver;
//	import android.content.Context;
//	import android.content.Intent;
//	import android.content.IntentFilter;
//	import android.net.ConnectivityManager;
//	import android.net.NetworkInfo;
//	import android.os.Handler;
//	import android.os.IBinder;
//	import android.os.Message;
//	import android.text.TextUtils;
//	import android.util.Log;
//	
//	import com.auto.learning.net.DownLoadHelper;
//	import com.auto.learning.net.DownLoadInfo;
//	import com.auto.learning.sharesdk.tools.ShareCommInfo;
//	import com.auto.learning.tools.CommonMethod;
//	
//	/**
//	 * 线程下载列队类
//	 */
//	@SuppressLint("HandlerLeak")
//	public class DownLoadService extends Service {
//	
//		private String TAG="DownLoadService";
//	private MyReceiver myRecevier;
//	private ArrayList<DownLoadMusicBean> taskQueue;// 下载列队的LIST
//	private long fileLength;// 当前下载文件的总长度
//	private DownLoadThread downThread;
//	//	private DownLoadTVThread downThread2;
//	// Service是否已经unbind的标识值
//	private boolean isUnbind = false;
//	private DBDownloadDao dbd;
//	private int downloadNumber=0;
//	private int totalNumber = 0;
//	private DBRecommendDao dbRecommendDao;
//	//	private DBDownloadTVDao dbDownloadTVDao;
//	//	private DBDownloadTVRecommendDao dbDownloadTVRecommendDao;
//	private ArrayList<DownLoadMusicBean> downLoadedArrayList =new ArrayList<DownLoadMusicBean>();
//	private boolean flag = false;
//	private DBBlackList blackList;
//	private String modelContent = "";
//	
//	private Handler handler = new Handler() {
//	
//		@Override
//		public void handleMessage(Message msg) {
//			switch (msg.what) {
//			case ActivityInfoHelper.SERVICE_HANDLER_UPDATE_PROGRESS:
//				int maxLength = msg.arg2;
//				int downLoadLength = msg.arg1;
//				String fileName = (String) msg.obj;
//				sendDownLoadProgress(maxLength, downLoadLength, fileName);
//				break;
//			}
//		}
//	
//	};
//	
//	@Override
//	public void onCreate() {
//		super.onCreate();
//		// initHandler();
//	}
//	
//	private String getModelContent(int total){
//		String content ="";
//	try {
//		content= CommonMethod.getUserBaseInfoInside(this, ShareCommInfo.modelDownloadMsg);
//		if (!TextUtils.isEmpty(content)) {
//			content = content.replace("【书本数量】", total+"");
//			}
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		return content;
//	}
//	
//	@Override
//	public int onStartCommand(Intent intent, int flags, int startId) {
//		dbd = new DBDownloadDao(DownLoadService.this);
//		dbRecommendDao=new DBRecommendDao(DownLoadService.this);
//	//		dbDownloadTVDao=new DBDownloadTVDao(DownLoadService.this);
//	//		dbDownloadTVRecommendDao =new DBDownloadTVRecommendDao(DownLoadService.this);
//	blackList = new DBBlackList(this);
//	myRecevier = new MyReceiver();
//	downThread = new DownLoadThread();
//	//		downThread2 = new DownLoadTVThread();
//	taskQueue = intent.getParcelableArrayListExtra(ActivityInfoHelper.SERVICE_INIT_MUSIC_INTENT);
//	//		taskTVQueue=intent.getParcelableArrayListExtra(ActivityInfoHelper.SERVICE_INIT_TV_INTENT);
//	if (taskQueue == null) {
//		taskQueue = new ArrayList<DownLoadMusicBean>();
//	} else {
//		// 检验是否打开了WIFI环境下下载
//		if (!CommonMethod.checkWifiDown(DownLoadService.this)) {
//			taskQueue.clear();
//		}
//		if (!SharePreHelper.getIsAutoDownLoadAudio(DownLoadService.this)) {
//			taskQueue.clear();
//		}
//	}
//	/*if (taskTVQueue == null) {
//		taskTVQueue = new ArrayList<TVBean>();
//	} else {
//		// 检验是否打开了WIFI环境下下载
//		if (!CommonMethod.checkWifiDown(DownLoadService.this)) {
//			taskTVQueue.clear();
//		}
//	}*/
//	downloadNumber=taskQueue.size();
//	downThread.start();
//	//		downThread2.start();
//		myRegisterReceiver();
//		return START_NOT_STICKY;
//	}
//	
//	public boolean isWifiConnected(Context context) {
//		if (context != null) {
//			ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//			NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
//			if (mWiFiNetworkInfo != null) {
//				return mWiFiNetworkInfo.isAvailable();
//			}
//		}
//		return false;
//	} 
//	
//	/**
//	 * 下载列队的线程
//	 *
//	 */
//	private class DownLoadThread extends Thread {
//	
//		@Override
//		public void run() {
//			while (true) {
//				while (taskQueue != null && taskQueue.size() > 0) {
//					// 下载任务
//			DownLoadMusicBean dlmb = taskQueue.remove(0);
//			if (dlmb == null) {
//				continue;
//			}
//			Log.d(TAG+"X","正在下载--"+ dlmb.getAuthorwareId()+"--"+dlmb.getAuthorwareTitle());
//			fileLength = dlmb.getSize();
//			if (fileLength != 0) {// 顺利获取文件长度，进行比对是否需要下载
//				try {
//					long downStartSize = DownLoadHelper.isNeedDownFile(DownLoadService.this,CommonMethod.getSDPath()+ DownLoadInfo.TEMP_PLAY_LIST,dlmb.getFileName(), fileLength);
//	//							long downStartSize = DownLoadHelper.isNeedDownFile(DownLoadService.this,dlmb);
//					if (downStartSize != -1) {// 需要进行下载
//						if (downloadNumber >= 0) {
//							totalNumber ++;
//						}
//						//发送广播-提示正在下载作品
//						sendLoadingStatus(dlmb);
//						ActivityInfoHelper.musicDownLoading = dlmb;
//						InputStream in = null;
//						boolean isStartFile = true;
//						long needDownloadLength = 0;
//						String fileName = CommonMethod.getFileName(dlmb.getFileName());
//						File file=new File(CommonMethod.getSDPath()+ DownLoadInfo.TEMP_PLAY_LIST +"/"+fileName);
//						if (file.exists()) {
//	//									downStartSize=file.length();
//							file.delete();
//						}
//						downStartSize = 0 ;
//						Log.d("downStartSize", downStartSize+"");
//						Log.d("downStartSize", dlmb.getFileName());
//						if (downStartSize == 0) {// 从头开始下载完整项目
//							in = DownLoadHelper.getFileInputStream(DownLoadService.this,dlmb.getFileName());
//							needDownloadLength = dlmb.getSize();
//							isStartFile = true;
//						} else {// 从指定大小开始下载
//							in = DownLoadHelper.getFileInputStream(DownLoadService.this,dlmb.getFileName(), downStartSize);
//							needDownloadLength = downStartSize;
//							isStartFile = false;
//						}
//						Log.d("fileName", CommonMethod.getFileName(dlmb.getFileName()));
//						DownLoadHelper.saveCard(in,
//								CommonMethod.getSDPath()+ DownLoadInfo.TEMP_PLAY_LIST, isStartFile,
//								CommonMethod.getFileName(dlmb.getFileName()), handler,needDownloadLength);
//						dbd.insert(dlmb);
//	//								ActivityInfoHelper.allDownLoadedMusic.add(dlmb);
//	//								sendLoadingStatus(dlmb);
//						downloadNumber--;
//						ActivityInfoHelper.musicDownLoading = null;
//						sendLoadingStatus(null);
//						//下载完成后告诉MusicPlayServices，当前已经下载完了，要是下载完成的作品正是在播放的作品，切换到本地播放。
//						sendChangeMusic2LocalFilePlay(dlmb);
//						try {
//							CommonMethod.updateLocalCollect(DownLoadService.this, dlmb, "collect.txt");
//						} catch (Exception e) {
//							e.printStackTrace();
//						}
//					} else {
//						downloadNumber--;
//					}
//					if (downloadNumber == 0 && totalNumber >0 ) {
//						sendInfoBroad(getModelContent(totalNumber));
//					}
//				} catch (Exception e) {
//					//下载失败  删除所有信息
//					String fileName2 = CommonMethod.getFileName(dlmb.getFileName());
//					File file=new File(CommonMethod.getSDPath()+ DownLoadInfo.TEMP_PLAY_LIST +"/"+ fileName2);
//					if (file.exists()) {
//						file.delete();
//					} 
//					//dbd.delByName(dlmb.getFileName());
//				}
//			}
//		}
//		
//		// 如果任务列表中所有任务都已下载完成，且service已经解绑，
//		// 则停止service，退出线程
//		if (isUnbind) {
//			stopSelf();
//			break;
//		}
//		// 如果任务列表为空，且未解绑，则线程等待
//		synchronized (this) {
//			try {
//				this.wait();
//			} catch (InterruptedException e) {
//				// do noting
//					}
//				}
//			}
//	
//		}
//	
//	}
//	
//	/**
//	 * 发送显示信息
//	 * 
//	 * @param value
//	 */
//	private void sendInfoBroad(String value) {
//		Intent intent = new Intent();
//		intent.setAction(ReceiverActions.MUSIC_SHOW_INFO_ACTION);
//		intent.putExtra(ActivityInfoHelper.MUSIC_SHOW_INFO_KEY, value);
//		sendBroadcast(intent);
//	}
//	/**
//	 * 发送正在下载的bean
//	 * @param value
//	 */
//	private void sendLoadingStatus(DownLoadMusicBean bean) {
//		Intent intent = new Intent();
//		intent.setAction(ReceiverActions.SEND_MUSIC_INFO_LOADING);
//		if (bean==null) {
//			bean=new DownLoadMusicBean();
//			bean.setAuthorwareId("-100");
//		}
//		intent.putExtra(ActivityInfoHelper.BORD_DOWNLOAD_LOADING, bean);
//		sendBroadcast(intent);
//	}
//	
//	private void sendLoadingStatusByTV(TVBean bean,boolean isStart) {
//		Intent intent = new Intent();
//		intent.setAction(ReceiverActions.SEND_TV_INFO_LOADING);
//		intent.putExtra(ActivityInfoHelper.BORD_DOWNLOAD_LOADING, bean);
//		intent.putExtra("isStart", isStart);
//		sendBroadcast(intent);
//	}
//	/**
//	 * 下载完，切换播放
//	 */
//	private void sendChangeMusic2LocalFilePlay(DownLoadMusicBean bean){
//		Intent intent = new Intent();
//		intent.setAction(ReceiverActions.CHANGE_TO_LOCAL_FILE_PLAY);
//		intent.putExtra(ActivityInfoHelper.BORD_DOWNLOAD_CHANGE_TO_LOCAL_FILE_PLAY, bean);
//		sendBroadcast(intent);
//	}
//	
//	/**
//	 * 发送正在下载的bean
//	 * @param value
//	 */
//	private void sendLoadedDBML(DownLoadMusicBean bean) {
//		Intent intent = new Intent();
//		intent.setAction(ReceiverActions.WRITE_SPLIT_ACTION);
//		intent.putExtra(ActivityInfoHelper.BORD_DOWNLOAD_LOADING, bean);
//		sendBroadcast(intent);
//	}
//	
//	/**
//	 * 下载列表的recevier
//	 */
//	private class MyReceiver extends BroadcastReceiver {
//	
//		@Override
//		public void onReceive(Context context, Intent intent) {
//			Log.d("下载列表", intent.getAction());
//	if (intent.getAction().equals(ReceiverActions.DOWNLAOD_ADD_DOWNLIST)) {// 播放的信息
//		DownLoadMusicBean dlmb = intent.getParcelableExtra(ActivityInfoHelper.DOWNLOAD_ADD_MUSIC);
//		addDownLoadList(dlmb);
//	}/*else if (intent.getAction().equals(ReceiverActions.DOWNLAOD_ADD_DOWNLIST_TV)) {
//		
//		TVBean tvBean = intent.getParcelableExtra(ActivityInfoHelper.DOWNLOAD_ADD_MUSIC);
//		addDownLoadTVList(tvBean);
//		 
//	}*/else if(intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)){
//		ConnectivityManager connectivityManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//	    NetworkInfo  wifiNetInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
//	    try {
//	    	if (wifiNetInfo.isConnected()) {
//	    		ArrayList<DownLoadMusicBean> collectList = CommonMethod.readAuthInfo(DownLoadService.this, "collect.txt");
//	    		if (collectList != null) {
//					for (int i = 0; i < collectList.size(); i++) {
//						addDownLoadList(collectList.get(i));
//					}
//				}
//	    		boolean isAutoDownLoadAuth = SharePreHelper.getIsAutoDownLoadAudio(DownLoadService.this);
//				ArrayList<DownLoadMusicBean> list= dbRecommendDao.query();
//				ArrayList<String> blackListBeanMusic = blackList.query(0);
//	//						ArrayList<String> blackListBeanTv = blackList.query(1);
//				ArrayList<DownLoadMusicBean> tempMusic = new ArrayList<DownLoadMusicBean>();
//				for (DownLoadMusicBean downLoadMusicBean : list) {
//					if (!blackListBeanMusic.contains(downLoadMusicBean.getAuthorwareId())) {
//						if (isAutoDownLoadAuth) {
//							addDownLoadList(downLoadMusicBean);
//						}
//						tempMusic.add(downLoadMusicBean);
//					}
//				}
//				
//				ArrayList<DownLoadMusicBean> ca_Music = CommonMethod.readAuthInfo(DownLoadService.this, "scollect.txt");
//				if (ca_Music!=null && ca_Music.size() > 0) {
//					for (int i = 0; i < ca_Music.size(); i++) {
//						if (isAutoDownLoadAuth && ca_Music.get(i).getListen() == 0) {
//							addDownLoadList(ca_Music.get(i));
//						}
//					}
//				}
//				
//				/*ArrayList<DownLoadMusicBean> arrayList = CommonMethod.readAuthInfo(DownLoadService.this, "hotlist.txt");
//				if (arrayList != null) {
//					for (int i = 0; i < arrayList.size(); i++) {
//						for (int j = 0; j < tempMusic.size(); j++) {
//							if (arrayList.get(i).getAuthorwareId().equals(tempMusic.get(j).getAuthorwareId())) {
//								tempMusic.remove(j);
//								break;
//							}
//						}
//					}
//					arrayList.addAll(tempMusic);
//				} else {
//					arrayList = new ArrayList<DownLoadMusicBean>();
//					arrayList.addAll(tempMusic);
//				}
//				sendBorad2play(arrayList);*/
//				
//				
//				/*if (SharePreHelper.getIsAutoDownLoadTV(DownLoadService.this)) {
//					ArrayList<TVBean> arrayList = dbDownloadTVRecommendDao.query();
//					for (TVBean tvBean : arrayList) {
//						if (!blackListBeanTv.contains(tvBean.getVideoId()+"")) {
//							addDownLoadTVList(tvBean);
//						}
//					}
//				}*/
//				
//				/**
//				 * 解决2G/3G/4G 未下载完时 切换到wifi的情况
//				 */
//				if (ActivityInfoHelper.musicDownLoading != null) {
//					addDownLoadList(ActivityInfoHelper.musicDownLoading);
//					ActivityInfoHelper.musicDownLoading = null;
//				}
//				/*if (ActivityInfoHelper.tvDownLoading != null) {
//					addDownLoadTVList(ActivityInfoHelper.tvDownLoading);
//					ActivityInfoHelper.tvDownLoading = null;
//				}*/
//	        }else {
//	        	/**
//				 * 解决在wifi未下载完列表时 切换到2G/3G/4G 的情况
//				 */
//				if (ActivityInfoHelper.musicDownLoading != null && SharePreHelper.getIsWifi(DownLoadService.this)) {
//					taskQueue.clear();
//					//下载失败  删除所有信息
//					String fileName2 = CommonMethod.getFileName(ActivityInfoHelper.musicDownLoading.getFileName());
//					File file=new File(CommonMethod.getSDPath()+ DownLoadInfo.TEMP_PLAY_LIST +"/"+ fileName2);
//					if (file.exists()) {
//						file.delete();
//					} 
//					dbd.delByName(ActivityInfoHelper.musicDownLoading.getFileName());
//					ActivityInfoHelper.musicDownLoading = null;
//				}
//				/*if (ActivityInfoHelper.tvDownLoading != null && SharePreHelper.getIsWifi(DownLoadService.this)) {
//					taskTVQueue.clear();
//					String fileName2 = CommonMethod.getFileName(ActivityInfoHelper.tvDownLoading.getFileName());
//					File file=new File(CommonMethod.getSDPath()+ DownLoadInfo.TEMP_TV_LIST +"/"+ fileName2);
//					if (file.exists()) {
//						file.delete();
//					}
//					dbDownloadTVDao.delByName(ActivityInfoHelper.tvDownLoading.getFileName());
//					sendLoadingStatusByTV(ActivityInfoHelper.tvDownLoading, false);
//					ActivityInfoHelper.tvDownLoading = null;
//				}*/
//			        }
//				} catch (Exception e) {
//						e.printStackTrace();
//			 }
//			}else if(intent.getAction().equals(ReceiverActions.DOWNLAOD_ADD_REMEND_LIST))  {
//				boolean flag_c = SharePreHelper.getIsAutoDownLoadAudio(DownLoadService.this);
//				if (!flag_c) {
//					return;
//				}
//				ArrayList<DownLoadMusicBean> list=intent.getParcelableArrayListExtra(ActivityInfoHelper.BORD_DOWNLOAD_LIST);
//				for (DownLoadMusicBean downLoadMusicBean : list) {
//					addDownLoadList(downLoadMusicBean);
//				}
//			}
//		}
//	}
//	
//	//发送广播播放推荐列表
//	private void sendBorad2play(ArrayList<DownLoadMusicBean> list){
//		Intent intent=new Intent(ReceiverActions.MY_DOWNLOADMUSIC_ACTION_TO_PLAY2);
//		intent.putParcelableArrayListExtra(ActivityInfoHelper.PUBLIC_SEND_PLAYLIST_AGIN, list);
//		sendBroadcast(intent);
//	}
//	/**
//	 * 检查推荐列表是否下载完
//	 */
//	Runnable checkdlmb = new Runnable() {
//	
//		@Override
//		public void run() {
//			
//		}		
//	};
//	
//	/**
//	 * 添加一首歌曲到下载列表
//	 */
//	private void addDownLoadList(DownLoadMusicBean dlmb) {
//		Log.d(TAG+"Y", dlmb.getAuthorwareTitle()+">>>"+ dlmb.getSize());
//		if (dlmb == null) {
//			return;
//		}
//		if (!taskQueue.contains(dlmb) ) {
//			taskQueue.add(dlmb);
//			synchronized (downThread) {
//				downThread.notify();
//			}
//		}
//	}
//	
//	/**
//	 * 注册我的RECEIVER
//	 */
//	private void myRegisterReceiver() {
//		IntentFilter filter = new IntentFilter();
//		filter.addAction(ReceiverActions.DOWNLAOD_ADD_DOWNLIST);
//	//		filter.addAction(ReceiverActions.DOWNLAOD_ADD_DOWNLIST_TV);
//		filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
//		filter.addAction(ReceiverActions.DOWNLAOD_ADD_REMEND_LIST);
//		registerReceiver(myRecevier, filter);
//	}
//	
//	@Override
//	public IBinder onBind(Intent intent) {
//		// 返回binder对象
//		return null;
//	}
//	
//	// 发送下载进度的广播
//	private void sendDownLoadProgress(int maxLength, int downProgress,
//			String fileName) {
//		Intent intent = new Intent();
//		intent.setAction(ReceiverActions.DOWNLOAD_PROGRESS_ACTION);
//		intent.putExtra(ActivityInfoHelper.BORD_DOWNLOAD_MAXLENGTH, maxLength);
//		intent.putExtra(ActivityInfoHelper.BORD_DOWNLOAD_PROGRESS, downProgress);
//		intent.putExtra(ActivityInfoHelper.BORD_DOWNLOAD_FILENAME, fileName);
//		sendBroadcast(intent);// 发送 一个无序广播
//	}
//	
//	/**
//	 * 安全销毁SERVICE的机制
//	 */
//		@Override
//		public void onDestroy() {
//			if (myRecevier != null) {
//				unregisterReceiver(myRecevier);
//			}
//			super.onDestroy();
//		}
//	}
